💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    로딩 중이에요... 🐣

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    01 Cookiecutter를 활용한 Django Instagram 프로젝트 생성 | ✅ 편저: 코담 운영자

    1강 - Cookiecutter를 활용한 Django Instagram 프로젝트 생성

    1 cookiecutter를 활용한 프로젝트 생성


    ✨ 프로젝트 소개 및 준비

    이 강의는 최신 Python 3.12, Django 5.0, 그리고 Cookiecutter-Django 2024.2 릴리즈 템플릿을 기반으로 진행되는 인스타그램 클론 프로젝트입니다.
    이전 강의에서 Django의 기본기를 학습한 상태에서, 이제 실전 프로젝트를 통해 Django 프레임워크의 실제 사용법을 익히게 됩니다.

    이 강의는 Cookiecutter-Django 템플릿을 활용하여 인스타그램 클론 프로젝트를 생성하는 과정입니다. 이전 강의에서 Django의 기본을 학습한 상태에서, 이제 실전 프로젝트를 통해 Django 프레임워크 사용법을 익힙니다.

    🔗 소스코드

    👉 GitHub Repository

    📺 참고 영상

    -🔗 Django로 만드는 Instagram 클론 강의

    🔧 사용 기술 및 버전
    항목 버전
    Python 3.12.x
    Django 5.0.x
    Cookiecutter-Django 2024.2.x
    PostgreSQL (선택사항)
    Tailwind CSS 최신

    ✔️ 사용 스택
    • Python + Django (Cookiecutter 기반 프로젝트 구조)
    • TailwindCSS: 스타일링 도구로 튜토리얼과 달리 Tailwind 사용
    • PostgreSQL: 기본 데이터베이스 설정
    📌 기능 목록 / 주요 기능 (Features 또는 주요 구현 사항)
    • 포스트 생성
    • 포스트 수정
    • 포스트 삭제
    • 포스트 리스트(피드)
    • 댓글 기능
    • 좋아요 기능
    • 검색 기능
    • 프로필 피드
    • 무한스크룰
    • 팔로우/언팔로우
    📌 기술스택
    • Python, Django, Django REST Framework
    • PostgreSQL
    • HTML, CSS, JavaScript
    • Tailwind CSS
    • AWS, Docker, Git, GitHub
    💻 프로젝트 구성 화면 예시

    회원가입

    로그인

    게시글등록

    목록

    ✏️ 프로젝트 생성 절차

    1. 가상환경 생성 및 진입

    python -m venv venv
    # Windows
    .\venv\Scripts\activate
    # macOS/Linux
    source venv/bin/activate
    

    venv는 가상환경 이름이며, 원하는 이름으로 변경 가능합니다 (예: myenv).


    2. Cookiecutter 설치 및 실행

    pip install cookiecutter
    cookiecutter https://github.com/cookiecutter/cookiecutter-django.git
    

    3. 주요 설정 항목 예시

    project_name: Djangogram
    project_slug: djangogram
    description: 인스타그램 클론 프로젝트
    author_name: 홍길동
    domain_name: example.com
    email: hong@example.com
    windows: y
    use_docker: y
    postgres_version: 11.3
    use_whitenoise: y
    use_drf: y
    frontend_pipeline: 4  # Webpack
    ...
    

    대부분 기본값으로 Enter를 입력해도 되지만, 일부 항목은 프로젝트에 맞게 설정하세요.


    4. 프로젝트 디렉토리 구조 예시

    djangogram/
    ├── config/
    ├── contrib/
    │   └── sites/
    ├── posts/
    ├── users/
    ├── static/
    ├── templates/
    ├── docs/
    ├── locale/
    ├── requirements/
    ├── utility/
    ├── manage.py
    ├── pyproject.toml
    ├── docker-compose.yml
    └── README.md
    

    📂 requirements 설치

    cd djangogram
    pip install -r requirements/local.txt
    

    설치 중 psycopg 관련 오류 발생 시, Microsoft C++ Build Tools가 필요할 수 있습니다.

    🐘 PostgreSQL 데이터베이스 생성

    PostgreSQL CLI 또는 pgAdmin에서 다음 SQL을 실행:

    CREATE DATABASE djangogram;
    CREATE USER djangogram_user WITH PASSWORD '1111';
    GRANT ALL PRIVILEGES ON DATABASE djangogram TO djangogram_user;
    GRANT ALL ON SCHEMA public TO djangogram_user;
    

    .env 파일 예시:

    DATABASE_URL=postgres://djangogram_user:1111@localhost:5432/djangogram
    

    settings/base.py 설정 예시:

    DATABASES = {
        "default": env.db(
            "DATABASE_URL",
            default="postgres://djangogram_user:1111@localhost:5432/djangogram",
        )
    }
    

    ⚙️ 마이그레이션 및 서버 실행

    python manage.py makemigrations
    python manage.py migrate
    python manage.py runserver
    

    📦 GitHub 저장소 연결

    git init
    git add .
    git commit -m "Initial commit"
    git remote add origin https://github.com/USERNAME/REPO.git
    git push -u origin main
    

    💡 데이터베이스 교체 예시

    SQLite 사용 시:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / 'db.sqlite3',
        }
    }
    

    MySQL 사용 시:

    pip install mysqlclient
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'your_db_name',
            'USER': 'your_username',
            'PASSWORD': 'your_password',
            'HOST': 'localhost',
            'PORT': '3306',
        }
    }
    

    🧩 주요 디렉토리 설명

    디렉토리 설명
    config/ 설정 파일 (settings, urls 등)
    posts/, users/ 앱 모듈 (기능별 분리)
    static/, templates/ 정적 파일, 템플릿
    contrib/sites/ 사이트 설정용 앱
    requirements/ 의존성 목록 (local, production 등)
    docs/ 문서화 관련
    locale/ 다국어 지원
    utility/ 설정 및 스크립트

    🗂️ 최종 프로젝트 디렉토리 구조 (실제 생성된 기준)

    아래는 Cookiecutter-Django를 기반으로 실제 생성된 TailwindCSS + PostgreSQL 환경의 최종 디렉토리 구조입니다 (이미지 기준):

    django_instagram/
    ├── config/
    ├── contrib/
    │   └── sites/
    ├── posts/
    │   ├── api/
    │   ├── migrations/
    │   ├── tests/
    │   ├── __init__.py
    │   ├── admin.py
    │   ├── apps.py
    │   ├── forms.py
    │   ├── models.py
    │   ├── tests.py
    │   ├── urls.py
    │   └── views.py
    ├── static/
    ├── templates/
    ├── users/
    │   ├── migrations/
    │   ├── tests/
    │   ├── __init__.py
    │   ├── adapters.py
    │   ├── admin.py
    │   ├── apps.py
    │   ├── context_processors.py
    │   ├── forms.py
    │   ├── models.py
    │   ├── urls.py
    │   ├── views.py
    │   ├── conftest.py
    │   └── utils.py
    ├── docs/
    ├── locale/
    ├── requirements/
    ├── utility/
    ├── db.sqlite3
    ├── .editorconfig
    ├── .env
    ├── .gitattributes
    ├── .gitignore
    ├── .pre-commit-config.yaml
    ├── .readthedocs.yml
    ├── CONTRIBUTORS.txt
    ├── docker-compose.docs.yml
    ├── LICENSE
    ├── manage.py
    ├── pyproject.toml
    └── README.md
    

    기존 템플릿 구조보다 TailwindCSS와 테스트, API 모듈, 환경 설정 파일 등이 포함된 실제 프로젝트 구조로 참고용으로 매우 중요합니다.


    ✅ 마무리

    • Cookiecutter-Django로 빠르게 장고 기반 프로젝트를 생성
    • PostgreSQL 연동 및 가상환경 구성
    • 실제 배포를 고려한 프로젝트 구조
    • 다음 강의에서는 TailwindCSS 설정과 기본 템플릿 구성 진행
    TOP
    preload preload